package swa23.provider.impl;

import swa2012.telco.broker.beans.Client;
import swa2012.telco.broker.beans.Message;
import swa2012.telco.broker.beans.Provider;
 
public class BrokerUtils {
	public static boolean checkMessage(Message msg) {
		if ((msg.getTimestamp() == null) || (msg.getReceiver() == null) || (msg.getSender() == null) || (msg.getText() == null)) {
			return false;
		}
		if (msg.getTimestamp().longValue() < 0L) {
			return false;
		}
 
		return (checkClient(msg.getReceiver())) && (checkClient(msg.getSender()));
	}
 
	public static boolean checkClient(Client c) {
		if ((c.getID() == null) || (c.getProvider() == null)) {
			return false;
		}
		if (c.getID().isEmpty()) {
			return false;
		}
 
		return checkProvider(c.getProvider());
	}

	public static boolean checkProvider(Provider p) {
		if ((p.getID() == null) || (p.getBrokerCallbackEndpoint() == null)) {
			return false;
		}
 
		return !p.getID().isEmpty();
	}
}
